var express = require('express');
var router = express.Router();
var mongoose = require("mongoose");  //引入mongoose模块
var models = require("../mongos/mongo");  //引入mongoose模块
/* GET users listing. */
router.get('/', function (req, res, next) {
  res.send('respond with a resource');
});

/*  Post register users username and password*/
router.post('/register', function (req, res, next) {
  //在get请求中获取前端传来的参数
  var parobj = req.body; //get请求中query代表前端参数对象，post请求中body代表参数对象
  console.log("用户模块：注册接口,注册信息为：", parobj)
  //  res.send({
  //    "msg":"注册接口",
  //    "succ":true,
  //  });
  //将用户名和密码写入到mongodb数据库
  // var mongoose = require("mongoose");  //引入mongoose模块
  mongoose.connect("mongodb://localhost:27017/mydb2", { useNewUrlParser: true, useUnifiedTopology: true }, function (err) {
    if (err) {
      console.log("连接失败:", err);
    } else {
      console.log("连接成功");
      models.users.find({ username: parobj.username }, function (err, data) {
        if (err) {
          return console.log("查询失败", err);
        }
        if (data.length > 0) {
          res.send({
            "message": "注册失败，此用户已存在",
            "succ": false,
            "data": parobj
          });
        }
        else {
          var user1 = new models.users(parobj)
          // 2.在通过这个实例调用save方法保存即可
          user1.save(function (err) {
            if (err) {
              console.log("文档添加失败：", err);
              //按照restfulAPI风格返回数据
              res.send({
                "message": "注册失败",
                "succ": false,
                "data": parobj
              });
            }
            else {
              console.log("文档添加成功");
              //按照restfulAPI风格返回数据
              res.send({
                "message": "注册成功",
                "succ": true,
                "data": parobj
              });
            }
            mongoose.disconnect();//关闭数据库连接
          });
        }
      })

    }
  })
})

router.post('/login', function (req, res, next) {
  var login = req.body;//接受前端发过来的请求数据
  //打印一下
  console.log(login);
  //要先连数据库，对数据库进行查询
  mongoose.connect("mongodb://localhost:27017/mydb2", { useNewUrlParser: true, useUnifiedTopology: true }, function (err) {
    if (err) {
      return console.log("连接失败啊", err);
    } else {
      console.log("连接成功");
      models.users.find({ username: login.username, password: login.password }, function (err, data) {
        if (err) {
          return console.log("查询失败", err);
        }
        if (data.length > 0) {
          //存在
          console.log("登录成功");
          //将用户名存入sesson
          req.session.user = login.username;
          //返回给前端数据
          res.send({
            "message": "登录成功",
            "succ": true,
            "data": login
          })
        } else {
          console.log("请去注册");
          res.send({
            "message": "登录失败",
            "succ": false,
            "data": login
          })
        }
        mongoose.disconnect();//关闭数据库连接
      })
    }
  })

});

router.get('/query', function (req, res, next) {
  var query = req.query;//接受前端发过来的请求数据
  //打印一下
  console.log(query);
  //要先连数据库，对数据库进行查询
  mongoose.connect("mongodb://localhost:27017/mydb2", { useNewUrlParser: true, useUnifiedTopology: true }, function (err) {
    if (err) {
      return console.log("连接失败啊", err);
    } else {
      console.log("连接成功");
      models.users.find(function (err, data) {
        if (err) {
          return console.log("查询失败", err);
        }
        if (data.length > 0) {
          //存在
          console.log("查询成功", data);
          //返回给前端数据
          res.send({
            "message": "查询成功",
            "succ": true,
            "data": data
          })
        } else {
          console.log("请去查询失败注册");
          res.send({
            "message": "查询失败",
            "succ": false,
            "data": data
          })
        }
        mongoose.disconnect();//关闭数据库连接
      })
    }
  })

});
module.exports = router;
